﻿using System;
using System.Collections.Generic;
using System.Text;
using ThomasGIS.Coordinates;
using ThomasGIS.Geometries;
using ThomasGIS.TrajectoryPackage;
using ThomasGIS.Vector;

namespace ThomasGIS.TrajectoryPackage
{
    public interface ITrajectorySet
    {
        IShapefile ExportToShapefile(CoordinateBase targetCoordinate);

        bool AddTrajectory(Trajectory trajectory);

        bool RemoveTrajectory(int index);

        bool SortByLength();

        IEnumerable<Trajectory> LengthLongerThan(double length);

        IEnumerable<Trajectory> LengthShorterThan(double length);

        IEnumerable<GnssPoint> SnapShotByTime(int timeStamp);

        BoundaryBox CalculateBoundaryBox();

        // 筛选出Destination在目标区域内的轨迹集合
        IEnumerable<Trajectory> DestinationRegionFilter(Polygon polygon);

        //
        bool ExportToText(string filepath);
    }
}
